home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / mint / mgr / sparcmgr / demo2.zoo / demo / ex / ex.news < prev    next >
Encoding:
Text File  |  1982-06-08  |  51.8 KB  |  1,285 lines

  1. Version 3.7  October 16, 1981
  2.  
  3.     It is now possible to split lines with substitute commands from vi,
  4.     by using ^V<return> in the rhs.  This takes care of the last
  5.     good reason for using ex command mode.
  6.  
  7.     Mode lines are now supported.  Put a line containing
  8.         ex: xxx :
  9.     in the first or last 5 lines of the file, where xxx is any ex
  10.     command you want executed when that file is read in.  To make
  11.     other programs happy, it should probably be inside a comment.
  12.     You can use vi: as well as ex:.  (Note: no space allowed
  13.     between the "ex" and ":".  The spaces around xxx are considered
  14.     part of the command, and so are optional.)
  15.  
  16.     If there is a file .exrc in the current directory, it will be
  17.     sourced when you enter vi, after your EXINIT or ~/.exrc.
  18.  
  19.     The changeable scrolling region of the vt100 is now used in
  20.     place of insert line, resulting in much better performance.
  21.  
  22.     Vi uses the new AL, DL, LE, RI, DO, and UP (all upper case)
  23.     termcap capabilities, which are parameterized versions of their
  24.     lower case equivalents.  This will results in better performance
  25.     on ANSI terminals, and especially on the Tektronix 4025 which
  26.     has parameterized local motions but cannot cursor address.
  27.  
  28.     Vi uses backtabs again.  Now it knows how to handle backtabs on
  29.     terminals that have tabs set at intervals other than 8, and it
  30.     won't use backtabs if gtty indicates it can't use tabs.
  31.  
  32.     A bug causing <escape> <del> to core dump vi has been fixed.
  33.  
  34.     A bug causing writes to filters when editing encrypted files
  35.     to write encrypted text has been fixed.
  36.  
  37.     A bug causing the message "substitution loop", when you enter a
  38.     1,$s/xxx/yyy/g with lots of changes, has been fixed.
  39.  
  40.     A bug causing the current directory to be chmodded to 0 if you
  41.     set nomesg after starting up the editor has been fixed.  Note
  42.     that the nomesg option is intended for your EXINIT, since it only
  43.     takes effect on entry to the editor.
  44.  
  45.     The eat newline glitch has been fixed so that vt100's and tab132's
  46.     handle long lines correctly.
  47.  
  48.     Some internal changes have been made so that vi can run under UNIX
  49.     on the Bell Labs 3B machine, the BBN C/70, and the IBM 370.
  50.  
  51. Version 3.6  October 30, 1980
  52.  
  53.     A kernel problem on the V7 pdp-11 overlay systems which causes
  54.     bad EMT traps to happen randomly, core dumping the editor,
  55.     has been programmed around by catching EMT traps.
  56.  
  57.     A bug which prevented using a screen larger than 48 lines has
  58.     been fixed.
  59.  
  60.     A bug which allowed you to set window to a value larger than
  61.     your screen size has been fixed.
  62.  
  63.     The screen size limit on non-VM/Unix systems has been increased
  64.     to 66 lines or 5000 characters, to allow the Ann Arbor Ambassador
  65.     terminal to be used.
  66.  
  67.     A bug which caused hangups to be ignored on USG systems has
  68.     been fixed.
  69.  
  70.     A bug which caused maps with multiple changes on multiple lines
  71.     to mess up has been fixed.
  72.  
  73.     If you get I/O errors, the file is considered "not edited" so
  74.     that you don't accidently clobber the good file with a munged
  75.     up buffer.
  76.  
  77.     An inefficiency in 3.5 which caused the editor to always call
  78.     ttyname has been fixed.
  79.  
  80.     A bug which prevented the "source" command from working in an
  81.     EXINIT or from visual has been fixed.
  82.  
  83.     A bug which caused readonly to be cleared when reading from
  84.     a writable file with "r" has been fixed.
  85.  
  86.     The name "suspend" has been made an alias for "stop".
  87.  
  88.     The stop command now once again works correctly from command mode.
  89.  
  90.     On a dumb terminal at 1200 baud, "slowopen" is now the default.
  91.  
  92.     A bug in the shell script "makeoptions" which searched for a
  93.     string that appeared earlier in a comment has been fixed.
  94.  
  95.     A bug that caused an infinite loop when you did ":s/\</&/g"
  96.     has been fixed.
  97.  
  98.     A bug that caused & with no previous substitution to give
  99.     "re internal error" has been fixed.
  100.  
  101.     A bug in the binary search algorithm for tags which sometimes
  102.     prevented the last tag in the file from being found has been fixed.
  103.  
  104.     Error messages from expreserve no longer output a linefeed,
  105.     messing up the screen.
  106.  
  107.     The message from expreserve telling you a buffer was saved when
  108.     your phone was hung up has be amended to say the editor was
  109.     terminated, since a kill can also produce that message.
  110.  
  111.     The "directory" option, which has been broken for over
  112.     a year, has been fixed.
  113.  
  114.     The "r" command no longer invokes input mode macros.
  115.  
  116.     A bug which caused strangeness if you set wrapmargin to 1
  117.     and typed a line containing a backslash in column 80 has
  118.     been fixed.
  119.  
  120.     A bug which caused the "r<cr>" at the wrapmargin column
  121.     to mess up has been fixed.
  122.  
  123.     On terminals with both scroll reverse and insert line,
  124.     the least expensive of the two will be used to scroll up.
  125.     This is usually scroll reverse, which is much less annoying
  126.     than insert line on terminals such as the mime I and mime 2a.
  127.  
  128.     A bug which caused vi to estimate the cost of cursor motion
  129.     without taking into account padding has been fixed.
  130.  
  131.     The failure of the editor to check counts on ^F and ^B commands
  132.     has been fixed.
  133.  
  134.     The "remap" option failed completely if it was turned off.
  135.     This has been fixed.
  136.  
  137.     A check of the wrong limit on a buffer for the right hand side
  138.     of substitutions has been fixed.  Overflowing this buffer could
  139.     produce a core dump.
  140.  
  141.     A bug causing the editor to go into insert mode if you typed
  142.     return during an R command has been fixed.
  143.  
  144.     A bug preventing the + command from working when you edit a
  145.     new file has been fixed by making it no longer an error to
  146.     edit a new file (when you first enter the editor.)  Instead
  147.     you are told it is a new file.
  148.  
  149.     If an error happens when you are writing out a file, such as
  150.     an interrupt, you are warned that the file is incomplete.
  151.  
  152. Version 3.5 -- August 20, 1980
  153.  
  154.     The provisions for changing the window size with a numeric
  155.     prefix argument to certain visual commands have been deleted.
  156.     The correct way to change the window size is to use the z
  157.     command, for example z5<cr> to change the window to 5 lines.
  158.  
  159.     The code to handle the -x (encryption) option has been made
  160.     conditionally compiled, so that ex can run on an an 11/34 (!)
  161.     with overlays.  Since this code calls getpass, stdio was
  162.     being pulled in even without VMUNIX being defined.  The
  163.     savings from not defining CRYPT are about 4K of text and 4.5K
  164.     of bss.
  165.  
  166.     Bill Joy put in a buffering scheme under the VMUNIX flag so
  167.     that up to 64K of file is edited in-core until you make enough
  168.     changes to force a temp file sync.  This makes entry into the
  169.     editor much faster, but also makes vi much bigger.
  170.  
  171.     The source to ex is now sccs'ed.
  172.  
  173.     An undocumented "feature" which caused the ^^ command to return
  174.     to the previous tag, if in the current file, instead of the
  175.     previous file, has been removed.
  176.  
  177.     A bug which prevented ex from compiling on systems with the new
  178.     tty driver but no process control (such as Cory) was fixed.
  179.  
  180. Version 3.4 -- June 24, 1980
  181.  
  182.     The visual page motion commands ^F and ^B now treat any preceding
  183.     counts as number of pages to move, instead of changes to the
  184.     window size.  That is, 2^F moves forward 2 pages.
  185.  
  186.     A :vi <file> command from visual mode is now treated the same
  187.     as a :edit <file> or :ex <file> command.  The meaning of the
  188.     vi command from ex command mode is not affected.
  189.  
  190.     Provisions to handle the new process stopping features of the
  191.     Berkeley TTY driver have been added.  A new command, "stop",
  192.     takes you out of the editor cleanly and efficiently, returning
  193.     you to the shell.  Resuming the editor puts you back in command
  194.     or visual mode, as appropriate.  If autowrite is set and there
  195.     are outstanding changes, a write is done first unless you say
  196.     "stop!".  From visual mode, the command ^Z is the same as :stop.
  197.     Note that if you have an arrow key that sends ^Z the stop function
  198.     will take priority over the arrow function.  If you have your
  199.     "susp" character set to something besides ^Z, that key will be
  200.     honored as well.
  201.  
  202.     A read only mode now lets you guarantee you won't clobber your
  203.     file by accident.  You can set the on/off option "readonly" (ro)
  204.     and writes will fail unless you use an ! after the write.
  205.     Commands such as x, ZZ, and autowrite, and in general anything
  206.     that writes is affected.  This option is turned on if you invoke
  207.     ex with the -R flag.  A new link called "view" has been  created.
  208.     View is just like vi but it sets readonly.
  209.  
  210.     The encryption code from the v7 editor is now part of ex.
  211.     You invoke ex with the -x option and it will ask for a key,
  212.     as ed.  The ed "x" command (to enter encryption mode from
  213.     within the editor) is not available.
  214.  
  215.     The editor now adopts the convention that a null string in the
  216.     environment is the same as not being set.  This applies to
  217.     TERM, TERMCAP, and EXINIT.
  218.  
  219.     A word abbreviation mode is now available.  You can define
  220.     abbreviations with the abbreviate command
  221.         :abbr foo find outer otter
  222.     which maps "foo" to "find outer otter".  Abbreviations can be
  223.     turned off with the "unabbreviate" command.  The syntax of these
  224.     commands is identical to the map and unmap commands, except
  225.     that the ! forms do not exist.  Abbreviations are considered
  226.     when in visual input mode only, and only affect whole words
  227.     typed in, using the conservative definition.  (Thus "foobar"
  228.     will not be mapped as it would using map!)
  229.     Abbreviate and unabbreviate can be abbreviated to "ab" and
  230.     "una", respectively.
  231.  
  232.     The editor now supports certain terminals that use strings other
  233.     then \r and \n for return and linefeed by implementing the cr
  234.     and nl termcap options.  (Thanks to UCLA for these enhancements).
  235.  
  236.     The termcap attribute ns is now checked for, and ex refuses to
  237.     go into visual mode on such a terminal unless it has sf.
  238.  
  239.     Terminals that can cursor address but cannot go up a line
  240.     now work in visual.
  241.  
  242.     If you change your start and stop characters to something other
  243.     than the default ^S and ^Q, vi now turns them off.  This causes
  244.     people who change them to escape not to lose so badly.
  245.     The quit character is once again turned off so that datamedias
  246.     which send ^\ for the right arrow key work.
  247.  
  248.     The ~ command now repeats correctly with ".".
  249.  
  250.     If you type in an unmatched ) or } in showmatch mode, the editor
  251.     will now beep to warn you about your mistake.  The ) or } is
  252.     still accepted.
  253.  
  254.     The way macros are undone has been improved considerably.
  255.     The number of changes inside the macro is counted, and just
  256.     before the second change the state before the macro is recreated
  257.     internally and saved to allow the macro to be undoable as a unit.
  258.     Hence, if the macro makes only one change the particular change is
  259.     undone (which will probably not redraw the screen).  If no changes
  260.     are made (for example, the arrow keys) the previous thing that could
  261.     be undone is not clobbered.
  262.  
  263.     The undomacro option has been deleted since it is no longer needed.
  264.  
  265.     Editor scripts can now contain comments.  Begin the comments with "
  266.     (double quote).  Comments can be on their own line or come at the
  267.     end of command lines.  The comment continues to the end of the line.
  268.  
  269.     The 3rd version of the USG tty driver is now supported, making it
  270.     possible on USG systems to interrupt redrawing the screen and to
  271.     not flush output when interruptable commands take place.
  272.  
  273.     The rewind command has been added to the list of commands that
  274.     the autowrite option knows about.
  275.  
  276.     The wrapmargin option is now usable.  The way it works has been
  277.     completely revamped.  Now if you go past the margin (even in the
  278.     middle of a word) the entire word is erased and rewritten on the
  279.     next line.  This changes the semantics of the number given to
  280.     wrapmargin.  0 still means off.  Any other number is still a
  281.     distance from the right edge of the screen, but this location
  282.     is now the right edge of the area where wraps can take place,
  283.     instead of the left edge.  Wrapmargin now behaves much like
  284.     fill/nojustify mode in nroff.
  285.  
  286.     A bug on the USG system where hanging up the phone causes more
  287.     than one SIGHUP to be sent has been compensated for.
  288.  
  289.     A bug which caused the :sh command not to send the vs and ti
  290.     sequences when you returned has been fixed.
  291.  
  292.     A bug which caused a file that bombed out in the middle of
  293.     an edit command to be considered modified has been fixed.
  294.  
  295.     A bug which caused the screen to be wrong after undoing a
  296.     :move command has been fixed.
  297.  
  298.     A bug which messed up the buffer and the screen after
  299.     undoing a :join command has been fixed.
  300.  
  301.     The source file ex_io.c has been split into ex_io.c and
  302.     ex_unix.c to avoid a problem where many C compilers overflowed
  303.     the symbol table.
  304.  
  305.     A bug which prevented turning off your prompt in your .exrc
  306.     has been fixed.
  307.  
  308.     Some of the code internal to the editor has been rearranged
  309.     and some comments added.
  310.  
  311.     The bug fix to the USG tty driver to output a null character
  312.     as padding at 1200 baud has been improved to output a DEL
  313.     at 1200 baud or above.
  314.  
  315.     Terminals with small screens (less than 20 columns or less
  316.     than 5 lines) should now work.
  317.  
  318.     A bug which prevented you from entering the character DEL
  319.     into the buffer if you changed your interrupt character to
  320.     something else besides DEL has been fixed.
  321.  
  322.     A bug which caused the current line to be clobbered when
  323.     you did a /, ?, or : command which mapped an input macro
  324.     successfully has been fixed.
  325.  
  326.     If you map o to O and O to o and have remap set, the editor
  327.     now catches the infinite loop.
  328.  
  329.     A put command after a macro now beeps instead of putting
  330.     a copy of the whole buffer.  (Note that the arrow keys
  331.     on terminals are considered macros.)
  332.  
  333.     A bug which caused things like d) and d} to miss the last
  334.     character when they should have deleted to the end of the
  335.     buffer has been fixed.
  336.  
  337.     A bug which caused the last character to be lost when you
  338.     read in a file with no newline at the end of the last line
  339.     has been fixed.
  340.  
  341.     A bug that caused garbage to be in the buffer if the temp file
  342.     overflowed has been fixed.  (This only affected non-VMUNIX systems
  343.     since the temp file cannot overflow on VMUNIX.)
  344.  
  345.     When a macro or global is undone, you no longer get picked up and
  346.     dropped on line 1.
  347.  
  348.     The character | can now be escaped with \| in file names.
  349.  
  350.     A bug which prevented the confirm option to a substitution that
  351.     was inside a source command has been fixed.
  352.  
  353.     A bug which caused the editor to not work if the tab stop size
  354.     did not divide the screen width has been fixed.
  355.  
  356.     A bug on HP terminals that caused the screen to be messed up if
  357.     you scrolled up something that began the same way as the echo line
  358.     has been fixed.
  359.  
  360.     A macro bug which sometimes caused the next character after an
  361.     escape to be ignored on an HP terminal has been fixed.
  362.  
  363.     A bug which caused unmap of strings with length 2 to fail has been
  364.     fixed.
  365.  
  366.     A bug which left vi confused if you invoked a macro containing a
  367.     quit to command mode and then did an undo has been fixed.
  368.  
  369.     An old ed bug which caused globals to fail when they did a substitute
  370.     on the next line has been fixed.
  371.  
  372.     The % operator will now find matching square brackets the same way
  373.     it does parentheses and braces.  It will not display them in
  374.     showmatch mode, however, and will not use a ] to match all ('s.
  375.  
  376.     Code has been added to handle the Beehive Superbee terminal,
  377.     using f1 for escape and f2 for control C.
  378.  
  379.     The default value of the option shell is now taken from the
  380.     environment variable SHELL, if present.
  381.  
  382. Version 3.3 -- February 2, 1980
  383.  
  384.     The default window sizes have been changed.  At 300 baud the
  385.     window is now 8 lines (was 1/2 the screen size).  At 1200 baud
  386.     the window is now 16 lines (was 2/3 the screen size, which was
  387.     usually also 16 for a typical 24 line CRT).  At 9600 baud the
  388.     window is still the full screen size.  Any baud rate less than
  389.     1200 behaves like 300, any over 1200 like 9600.
  390.  
  391.     A new command mode command "x" (for "xit") has been added.  This
  392.     is the same as wq but will not bother to write if there have been
  393.     no changes to the file.  The command letter was chosen for
  394.     convenience and compatibilty with hed.
  395.  
  396.     The command "ZZ" from vi is the same as ":x<cr>".  This is
  397.     the recommended way to leave the editor.  Z must be typed twice
  398.     since this is two easy to type by accident and has such severe
  399.     effects if unintentional.
  400.  
  401.     The options w300, w1200, and w9600 can be set.  They are synonyms
  402.     for "window", but only apply at 300, 1200, or 9600 baud, resp.
  403.     Thus you can specify you want a 12 line window at 300 baud and
  404.     a 23 line window at 1200 baud with
  405.         :set w300=12 w1200=23
  406.  
  407.     It is now possible to say
  408.         :set window=5
  409.     and get the effect the next time the screen is redrawn from scratch.
  410.     (^L and Hit return to continue don't start from scratch.)
  411.     This is sort of pointless, since both
  412.         5:<cr>
  413.     and
  414.         z5<cr>
  415.     do the same thing with better results.
  416.  
  417.     The editor no longer uses nondestructive space, except when in
  418.     insert mode.  It instead prints the character it would be
  419.     moving over.  This is a real win on terminals that use an
  420.     escape sequence to nd space.
  421.  
  422.     It is now possible from visual to string several search expressions
  423.     together separated by semicolons the same as command mode.  For
  424.     example, you can say
  425.         /foo/;/bar
  426.     from visual and it will move to the first "bar" after the next "foo".
  427.     This also works within one line.
  428.  
  429.     The option "mapinput" is dead.  It has been replaced by a much
  430.     more powerful mechanism: :map! (e.g. put an ! after the map).
  431.     Map and unmap commands with ! apply only to input, others apply
  432.     only to command mode.
  433.  
  434.     The new option "timeout" (default on) causes macros to time out
  435.     after one second.  Turn it off and they will wait forever.
  436.  
  437.     By using map! and setting notimeout, it is possible to get the
  438.     effect of emacs abbreviation mode.  Sanity checking is turned off
  439.     for map when ! is present.  This is a crude facility and does not
  440.     take into account things like the abbreviation being part of a longer
  441.     word.  It also does not echo until it is satisfied.
  442.  
  443.     The new option "remap" (default on) causes the editor to attempt
  444.     to map the result of a macro mapping again until the mapping fails.
  445.     This makes it possible, say, to map q to # and #1 to something else
  446.     and get q1 mapped to something else.  Turning it off makes it possible
  447.     to map ^L to l and map ^R to ^L without having ^R map to l.
  448.  
  449.     The new option "undomacro" (default on) makes it possible to undo
  450.     macros as a unit.  Leaving it off causes macros not to be treated
  451.     specially.  Macros with zero or one change work better with noum,
  452.     with two or more changes better with um.  This option may go away
  453.     if it becomes unnecessary.
  454.  
  455.     The new (string) valued option "tags" allows you to specify a list
  456.     of tag files, similar to the "path" variable of csh.  The files
  457.     are separated by spaces (which are entered preceded by a backslash)
  458.     and are searched left to right.  The default value is
  459.     "tags /usr/lib/tags", which has the same effect as before.
  460.     It is recommended that "tags" always be the first entry.
  461.     On Ernie, /usr/lib/tags contains entries for the system defined
  462.     library procedures from section 3 of the manual.
  463.  
  464.     ^R is now the same as ^L on terminals where the right arrow key
  465.     sends ^L (The tvi and the adm 31).
  466.  
  467.     Looking for a tag now uses binary search.
  468.  
  469.     The "q" command from visual no longer works at all.  You must
  470.     use "Q" to get to ex command mode.
  471.  
  472.     A minor incompatibility with the v7 ed has been fixed.  Previously,
  473.     to do a global substitute with an escaped newline in the rhs, you
  474.     had to put two \'s in ex and one in ed.  Ex now accepts the single
  475.     form as well as the double form.  For example, instead of
  476.         g/foo/s//foo\\
  477.         bar/g
  478.     (which still works), you can now type, as in ed,
  479.         g/foo/s//foo\
  480.         bar/g
  481.     This means that the following ex command, which used to "work":
  482.         g/foo/s//foo bar\
  483.         .+1,/mumble/d
  484.     won't work anymore unless you put the trailing / on the substitution.
  485.     This usage is pretty obscure anyway.
  486.  
  487.     Several bugs relating to undoing macros have been fixed.
  488.  
  489.     A bug which caused the command "g/pattern" to print an error
  490.     message if "pattern" occurred on the last line has been fixed.
  491.  
  492.     If you reply ":" to "Hit return to continue", you will again be
  493.     asked "Hit return to continue" after the next command finishes.
  494.  
  495.     Limits have been raised so that an Ann Arbor terminal can be used,
  496.     and long tags can now be accomodated.
  497.  
  498.     The maximum length of a string valued option has been raised from
  499.     32 to 64, for the benefit of the "tags" option.
  500.  
  501.     It is now possible to search for an escape or delete using f, F, t,
  502.     T, ;, and ,.  These characters must be quoted with ^V.
  503.  
  504.     The option "ttytype" is now in correct alphabetical order.
  505.  
  506.     A bug that caused HP terminals to mess up in insert mode when inserting
  507.     before a tab which follows 7 or fewer characters at the beginning of a
  508.     line (such as a tags file) has been fixed.
  509.  
  510.     It is now possible to include control D in your EXINIT or .exrc.
  511.  
  512.     A bug which caused the screen to mess up when a glob (such as xx*)
  513.     doesn't match anything has been fixed.
  514.  
  515.     The editor now checks for extra junk after a /r.e./ from visual
  516.     (other than the allowed z command) and beeps if any is found.
  517.     Previously it was just ignored.
  518.  
  519.     A bug that caused j and k (up and down) to behave strangely after
  520.     an insertion has been fixed.
  521.  
  522.     A bug which causes term to be displayed incorrectly and which
  523.     caused a crash when changing terminal type when there happened
  524.     to be several |'s and a long string in genbuf has been fixed.
  525.     This bug was introduced in ex 2.9.
  526.  
  527.     The patch for echo lines longer than 80 characters has been
  528.     repaired to do "Hit return to continue" after such lines and
  529.     print the entire output.
  530.  
  531.     A bug that caused a messed up screen after a :sh command from
  532.     open mode has been fixed.
  533.  
  534.     A bug which caused a tag request for a nonexistant tag to leave
  535.     the editor in nomagic mode has been fixed.
  536.  
  537.     A bug which caused strange behavior if there is no default file
  538.     name when an autowrite save is attempted has been fixed.
  539.  
  540.     A bug which caused the cursor to go to the wrong position when
  541.     ^^D or 0^D is entered from column 2 in autoindent mode on terminals
  542.     that can backspace has been fixed.
  543.  
  544. Version 3.2 -- January 4, 1980
  545.  
  546.     A bug that caused nomagic to be set if an error happened within
  547.     a tag command has been fixed.
  548.  
  549.     A bug that caused put commands to beep after a macro containing
  550.     an error has been fixed.
  551.  
  552.     The mapinput option has been placed in alphabetical order.
  553.  
  554.     A bug that caused undo to undo more than one macro invocation
  555.     on the same line has been fixed.
  556.  
  557.     On non VM/UNIX systems, the screen size has been increased to
  558.     allow a 40 X 80 Ann Arbor to be used.
  559.  
  560. Version 3.2 -- December 28, 1980
  561.     
  562.     Several limits have been increased for VM/UNIX.  Longer lines,
  563.     more characters of file names, longer regular expressions, etc.
  564.     Huge files can now be edited directly.  Larger terminals (up to
  565.     66 lines) can be used.
  566.  
  567.     An internal change has been made for VM/UNIX that causes error
  568.     messages to be stored directly instead of in a disk file.
  569.     This should cause faster response to errors.
  570.  
  571. Version 3.1.1 -- December 13, 1979
  572.  
  573.     A bug that caused nested macros not to be undoable has been fixed.
  574.  
  575.     A bug that caused pounding on the escape key on terminals with
  576.     arrow keys that send escape sequences to cause undo to screw up
  577.     has been fixed.
  578.  
  579.     It is now acknowledged that macros cannot contain the put command.
  580.     This is due to the implementation of put - previously a put inside
  581.     a macro dumped a copy of the buffer instead of the desired text and
  582.     left the editor in a very strange state.  Now such a put just beeps.
  583.  
  584. Version 3.1 -- November 1, 1979
  585.  
  586.     Versions from 3.1 up are too large to fit on pdp-11's.
  587.     (Special overlay software is expected to be available soon
  588.     for v7 pdp-11 Unix that will make it fit.) Version 2.9
  589.     is 3.1 with only the bug fixes and very few of the enhancements.
  590.     2.9 will fit on a pdp-11. Version 2.10 will come out and may
  591.     correspond to 3.2. (It turned out to correspond to 3.3)
  592.  
  593.     For compatibility with ed:  's<newline>' may be used as a
  594.     command and means '&'.  If you set the option "edcompatible"
  595.     (abbr "ed") the presense or abscence of g and c suffices is
  596.     remembered and can be toggled by repeating the suffices.  The
  597.     suffix "r" makes the substitution into "~" instead of "&".
  598.  
  599.     A new command line option -w<n> sets the value of window before
  600.     starting ex. Hence: 'vi -w5 file' makes a quick change to a file
  601.     easier at 300 baud.
  602.  
  603.     Arrow keys on terminals that send more than 1 character now
  604.     work.  Home up keys are supported as are the four directions.
  605.     Ex no longer looks at the ma= entry in termcap, but uses the
  606.     ku, kd, kl, kr, and kh entries.  (Note that the HP 2621 will
  607.     turn on function key labels, and even then you have to hold
  608.     shift down.  To avoid turning on the labels, and to give up the
  609.     function keys, use terminal type 2621nl instead of 2621.)
  610.  
  611.     A parameterless macro facility is included from visual. Briefly,
  612.     there are two flavors of macros:
  613.         a) Put the macro body in a buffer register, say x. Then
  614.            type @x to invoke it. @ may be followed by another @
  615.            to repeat the last macro.
  616.            This allows macros up to 512 chars.
  617.         b) Use the map command from command mode (typically in the
  618.            .exrc file) as follows:
  619.             map lhs rhs
  620.            where lhs will be mapped to rhs.
  621.            There are restrictions: lhs's should be 1-keystroke
  622.            (either 1 char or 1 function key) since they must be
  623.            entered within 1 second. lhs no longer than 10 chars,
  624.            rhs no longer than 100. To get " ", "\t", "|", or "\n"
  625.            into lhs or rhs, escape them with ctrl V. (It may be
  626.            necessary to escape the ctrl V with ctrl V if the map
  627.            command is given from visual mode.)
  628.     For 1 shot macros it is best to put the macro in a buffer register
  629.     and map a key to '@r', since this will allow the macro to be edited.
  630.  
  631.     Macros can be deleted with
  632.         unmap lhs
  633.  
  634.     The boolean option "mapinput" (mi) will, if on, cause macros to
  635.     be mapped in input mode as well as command mode (in visual only).
  636.     For example, you can define ctrl T to be four spaces with
  637.         :map ^V^T_^V^V____
  638.         :set mi
  639.     where underlines represent spaces and the ctrl V's are necessary
  640.     to get ctrl chars and spaces past various levels, and make ^T be
  641.     a software tab that even works in the middle of a line.
  642.  
  643.     If the lhs of a macro is "#0" through "#9", this maps the particular
  644.     function key instead of the 2 char # sequence, if the terminal has
  645.     function keys. This only works if termcap has function key entries
  646.     for the particular terminal. For terminals without function keys,
  647.     the sequence #x means function key x, as typed. As a special case,
  648.     on terminals without function keys, the #x sequence need not be
  649.     typed within one second. The character # can be changed by using
  650.     a macro in the usual way:
  651.         map ^V^I #
  652.     to use tab, for example. (This won't affect the map command, which
  653.     still uses #, but just the invocation from visual mode.)
  654.     The undo command will undo an entire macro call as a unit.
  655.  
  656.     New commands in visual: ^Y and ^E. These glitch the screen up
  657.     and down 1 line, respectively. They can be given counts, controlling
  658.     the number of lines the screen is glitched. They differ from ^U
  659.     and ^D in that the cursor stays over the same line in the buffer
  660.     it was over before rather than staying in the same place on the
  661.     screen. (^Y on a dumb terminal with a full screen will redraw the
  662.     screen moving the cursor up a few lines.) If you're looking for
  663.     mnemonic value in the names, try this: Y is right next to U and
  664.     E is right next to D.
  665.  
  666.     More new commands in visual: '&' is a synonym for ':&<cr>'.
  667.     '~' changes the case of the letter under the cursor and moves
  668.     to the next character.
  669.  
  670.     Ex looks in your environment for EXINIT. If it finds it, that
  671.     is used instead of looking for your .exrc. This should make
  672.     entry into ex faster, along with the termlib feature of looking
  673.     for a termcap entry in TERMCAP.
  674.  
  675. Version 2.13 -- September 23, 1980
  676.  
  677.     The provisions for changing the window size with a numeric
  678.     prefix argument to certain visual commands have been deleted.
  679.     The correct way to change the window size is to use the z
  680.     command, for example z5<cr> to change the window to 5 lines.
  681.  
  682.     An undocumented "feature" which caused the ^^ command to return
  683.     to the previous tag, if in the current file, instead of the
  684.     previous file, has been removed.
  685.  
  686. Version 2.12 -- July 23, 1980
  687.  
  688.     A change was made to the sys_errlist array in ex_subr.c so that
  689.     Berkeley V7 quotas will produce the right error message.
  690.  
  691.     A couple of minor bug fixes were made to get the editor to
  692.     compile on version 6.  The option to use 1K BUFSIZ has been
  693.     deleted, since it is no longer used on our 1K system.
  694.  
  695. Version 2.11 -- June 24, 1980
  696.  
  697.     The visual page motion commands ^F and ^B now treat any preceding
  698.     counts as number of pages to move, instead of changes to the
  699.     window size.  That is, 2^F moves forward 2 pages.
  700.  
  701.     A :vi <file> command from visual mode is now treated the same
  702.     as a :edit <file> or :ex <file> command.  The meaning of the
  703.     vi command from ex command mode is not affected.
  704.  
  705.     A read only mode now lets you guarantee you won't clobber your
  706.     file by accident.  You can set the on/off option "readonly" (ro)
  707.     and writes will fail unless you use an ! after the write.
  708.     Commands such as x, ZZ, and autowrite, and in general anything
  709.     that writes is affected.  This option is turned on if you invoke
  710.     ex with the -R flag.  A new link called "view" has been  created.
  711.     View is just like vi but it sets readonly.
  712.  
  713.     The editor now supports certain terminals that use strings other
  714.     then \r and \n for return and linefeed by implementing the cr
  715.     and nl termcap options.  (Thanks to UCLA for these enhancements).
  716.  
  717.     The termcap attribute ns is now checked for, and ex refuses to
  718.     go into visual mode on such a terminal unless it has sf.
  719.  
  720.     If you change your start and stop characters to something other
  721.     than the default ^S and ^Q, vi now turns them off.  This causes
  722.     people who change them to escape not to lose so badly.
  723.     The quit character is once again turned off so that datamedias
  724.     which send ^\ for the right arrow key work.
  725.  
  726.     If you type in an unmatched ) or } in showmatch mode, the editor
  727.     will now beep to warn you about your mistake.  The ) or } is
  728.     still accepted.
  729.  
  730.     Editor scripts can now contain comments.  Begin the comments with "
  731.     (double quote).  Comments can be on their own line or come at the
  732.     end of command lines.  The comment continues to the end of the line.
  733.  
  734.     The 3rd version of the USG tty driver is now supported, making it
  735.     possible on USG systems to interrupt redrawing the screen and to
  736.     not flush output when interruptable commands take place.
  737.  
  738.     The rewind command has been added to the list of commands that
  739.     the autowrite option knows about.
  740.  
  741.     A bug on the USG system where hanging up the phone causes more
  742.     than one SIGHUP to be sent has been compensated for.
  743.  
  744.     A bug which caused a file that bombed out in the middle of
  745.     an edit command to be considered modified has been fixed.
  746.  
  747.     The source file ex_io.c has been split into ex_io.c and
  748.     ex_unix.c to avoid a problem where many C compilers overflowed
  749.     the symbol table.
  750.  
  751.     A bug which prevented turning off your prompt in your .exrc
  752.     has been fixed.
  753.  
  754.     Some of the code internal to the editor has been rearranged
  755.     and some comments added.
  756.  
  757.     The bug fix to the USG tty driver to output a null character
  758.     as padding at 1200 baud has been improved to output a DEL
  759.     at 1200 baud or above.
  760.  
  761.     Terminals with small screens (less than 20 columns or less
  762.     than 5 lines) should now work.
  763.  
  764.     A bug which prevented you from entering the character DEL
  765.     into the buffer if you changed your interrupt character to
  766.     something else besides DEL has been fixed.
  767.  
  768.     A bug which caused things like d) and d} to miss the last
  769.     character when they should have deleted to the end of the
  770.     buffer has been fixed.
  771.  
  772.     A bug which caused the last character to be lost when you
  773.     read in a file with no newline at the end of the last line
  774.     has been fixed.
  775.  
  776.     A bug that caused garbage to be in the buffer if the temp file
  777.     overflowed has been fixed.
  778.  
  779.     The character | can now be escaped with \| in file names.
  780.  
  781.     A bug which caused the editor to not work if the tab stop size
  782.     did not divide the screen width has been fixed.
  783.  
  784.     A bug on HP terminals that caused the screen to be messed up if
  785.     you scrolled up something that began the same way as the echo line
  786.     has been fixed.
  787.  
  788.     An old ed bug which caused globals to fail when they did a substitute
  789.     on the next line has been fixed.
  790.  
  791.     The % operator will now find matching square brackets the same way
  792.     it does parentheses and braces.  It will not display them in
  793.     showmatch mode, however, and will not use a ] to match all ('s.
  794.  
  795.     Ex looks in your environment for EXINIT. If it finds it, that
  796.     is used instead of looking for your .exrc. This should make
  797.     entry into ex faster, along with the termlib feature of looking
  798.     for a termcap entry in TERMCAP.
  799.  
  800.     Internally, it is possible to turn off about a dozen different
  801.     options when compiling the editor to make it fit in 64K.
  802.     See the makefile for a list of options.
  803.  
  804. Version 2.10 -- February 2, 1980 (Corresponds to 3.3)
  805.  
  806.     The default window sizes have been changed.  At 300 baud the
  807.     window is now 8 lines (was 1/2 the screen size).  At 1200 baud
  808.     the window is now 16 lines (was 2/3 the screen size, which was
  809.     usually also 16 for a typical 24 line CRT).  At 9600 baud the
  810.     window is still the full screen size.  Any baud rate less than
  811.     1200 behaves like 300, any over 1200 like 9600.
  812.  
  813.     A new command mode command "x" (for "xit") has been added.  This
  814.     is the same as wq but will not bother to write if there have been
  815.     no changes to the file.  The command letter was chosen for
  816.     convenience and compatibilty with hed.
  817.  
  818.     The command "ZZ" from vi is the same as ":x<cr>".  This is
  819.     the recommended way to leave the editor.  Z must be typed twice
  820.     since this is two easy to type by accident and has such severe
  821.     effects if unintentional.
  822.  
  823.     The options w300, w1200, and w9600 can be set.  They are synonyms
  824.     for "window", but only apply at 300, 1200, or 9600 baud, resp.
  825.     Thus you can specify you want a 12 line window at 300 baud and
  826.     a 23 line window at 1200 baud with
  827.         :set w300=12 w1200=23
  828.  
  829.     The "q" command from visual no longer works at all.  You must
  830.     use "Q" to get to ex command mode.
  831.  
  832.     The editor no longer uses nondestructive space, except when in
  833.     insert mode.  It instead prints the character it would be
  834.     moving over.  This is a real win on terminals that use an
  835.     escape sequence to nd space.
  836.  
  837.     A minor incompatibility with the v7 ed has been fixed.  Previously,
  838.     to do a global substitute with an escaped newline in the rhs, you
  839.     had to put two \'s in ex and one in ed.  Ex now accepts the single
  840.     form as well as the double form.  For example, instead of
  841.         g/foo/s//foo\\
  842.         bar/g
  843.     (which still works), you can now type, as in ed,
  844.         g/foo/s//foo\
  845.         bar/g
  846.     This means that the following ex command, which used to "work":
  847.         g/foo/s//foo bar\
  848.         .+1,/mumble/d
  849.     won't work anymore unless you put the trailing / on the substitution.
  850.     This usage is pretty obscure anyway.
  851.  
  852.     A bug which caused the command "g/pattern" to print an error
  853.     message if "pattern" occurred on the last line has been fixed.
  854.  
  855.     Limits have been raised so that an Ann Arbor terminal can be used,
  856.     and long tags can now be accomodated.
  857.  
  858.     A bug that caused HP terminals to mess up in insert mode when inserting
  859.     before a tab which follows 7 or fewer characters at the beginning of a
  860.     line (such as a tags file) has been fixed.
  861.  
  862.     A bug which causes term to be displayed incorrectly and which
  863.     caused a crash when changing terminal type when there happened
  864.     to be several |'s and a long string in genbuf has been fixed.
  865.     This bug was introduced in ex 2.9.
  866.  
  867.     The patch for echo lines longer than 80 characters has been
  868.     repaired to do "Hit return to continue" after such lines and
  869.     print the entire output.
  870.  
  871.     A bug that caused a messed up screen after a :sh command from
  872.     open mode has been fixed.
  873.  
  874.     A bug which caused a tag request for a nonexistant tag to leave
  875.     the editor in nomagic mode has been fixed.
  876.  
  877.     A bug which caused strange behavior if there is no default file
  878.     name when an autowrite save is attempted has been fixed.
  879.  
  880.     A bug which caused the cursor to go to the wrong position when
  881.     ^^D or 0^D is entered from column 2 in autoindent mode on terminals
  882.     that can backspace has been fixed.
  883.  
  884.     In order to get 2.10 to fit on a v7 pdp-11, the following features
  885.     have been deleted:
  886.         The MASTERTAGS feature (undocumented use of /usr/lib/tags
  887.         as an alternate tag file)
  888.         Checking that a file being read in is an ascii file.
  889.         Turning off ^Q/^S on a v7 system.
  890.  
  891. Version 2.9 -- November 1, 1979
  892.  
  893.     The meanings of semicolon and newline, broken in 2.8, have been fixed.
  894.     Newline with two arguments still prints the range, unless a semicolon
  895.     was present, in which case only the last line is printed. Semicolon
  896.     otherwise behaves as in ed (and ex 2.7).
  897.  
  898.     For compatibility with ed: '%' is an abbreviation for '1,$'.
  899.     The default starting line for 'z' is '.+1' instead of '.'.
  900.     If 'z' is followed by a number, this number is remembered
  901.     (by setting the scroll option).
  902.  
  903.     The + options to the command line invocation and to the edit
  904.     command now also work for the next command. In addition, the
  905.     text after the + is no longer limited to a line number or
  906.     / or ? search string, but can be any single command. (It cannot
  907.     contain spaces except on command line invocation, and then must
  908.     be quoted to make the shell happy.)  The only special case is
  909.     where + is used by itself - this is the same as +$.
  910.  
  911.     The way window sizes and scrolling commands are based on the options
  912.     window and scroll has been rearranged. All command mode scrolling
  913.     commands (z and ctrl D) are based on scroll: ^D moves scroll lines,
  914.     z moves scroll*2 lines. Everything in visual (^D, ^U, ^F, ^B, z,
  915.     window sizes in general) are based on the window option. The
  916.     defaults are arranged so that everything seems as before, but
  917.     on hardcopy terminals at 300 baud the default for scroll is
  918.     11 instead of 6.
  919.  
  920.     Whether ex prompts for commands now depends on the setting of the
  921.     prompt variable, so inside script you can say 'set prompt' and
  922.     get ex to prompt.
  923.  
  924.     Tags are now searched for in nomagic mode instead of the funny
  925.     mode where magic characters were impossible to get.
  926.  
  927.     Paragraphs and sections with one letter names (such as those
  928.     used by PWB/MM) now work - use a space (escaped by a backslash)
  929.     for the second letter. Default paragraphs and sections are included
  930.     for both MM and MS. (Thanks to adb for this)
  931.  
  932.     A bug involving 16 bit arithmetic on a vax for the yank command
  933.     has been fixed.
  934.  
  935.     The text of the mailed message from expreserve has been improved
  936.     slightly.
  937.  
  938.     The editor now always turns off the XTABS stty bit when in visual
  939.     mode, making terminals that do special things with ^I work.
  940.  
  941.     The editor now knows about terminals with destructive tabs, like
  942.     the teleray 1061, having the xt option.
  943.  
  944.     A bug that caused going past column 80 on terminals with insert line
  945.     but not insert char (like the mime, h1500, or i100) to mess up the
  946.     screen has been fixed.
  947.  
  948.     A bug on 2621's that causes lines longer than 80 chars long with
  949.     embedded tabs to mess up when a tab was inserted has been fixed.
  950.  
  951.     A bug that caused the wrong line to suddenly appear under very
  952.     rare circumstances involving small window sizes and long lines
  953.     where a search left the cursor on the top line of the screen
  954.     has been fixed.
  955.  
  956.     The bug that caused inverse video to sometimes be scrolled up
  957.     into the file from an error message has been fixed.
  958.  
  959.     The join command has been fixed, so that '3,3j' no longer joins
  960.     lines 3 and 4. ('3j' still does.) Thus, '/a/;/b/-j' works right
  961.     even if b is found on the line after a.
  962.  
  963.     ex -v now finds your .exrc. In related changes, the default in
  964.     vi is now magic and nobeautify.
  965.  
  966.     If your buffer is empty, ex won't refuse to do an edit, quit,
  967.     or tag command because you haven't done a write.
  968.  
  969.     A bug causing visual undo not to work after '1,$!cat' has been
  970.     fixed.
  971.  
  972.     Ex now decides for itself whether to use CBREAK or TIOCSETN
  973.     by whether they are defined in <sgtty.h>. This eliminates much
  974.     of the #ifdef USG or V6 lines. One USG line remains due to a bug
  975.     in the USG tty driver at 1200 baud.
  976.     Note that this will mess up if you use libretro because <sgtty.h>
  977.     has CBREAK and TIOCSETN defined. Take these out of sgtty.h to fix this.
  978.  
  979.     Termcap options TI and TE have been added.  These strings are 
  980.     respectively output at the beginning and end of the editing session.
  981.  
  982.     Values for the set command may now include `\ ' for space and
  983.     control characters.
  984.  
  985.     Changes have been made to /etc/termcap (several new fields have
  986.     been added) and to termlib (it now looks for TERMCAP in the environment
  987.     and treats it as a termcap entry if the name of the terminal mentioned
  988.     is the same as TERM and the entry doesn't start with a slash.
  989.     If it starts with a slash it is treated as a filename, as before.
  990.     Termcap also checks the 512 byte entry limit and skips lines beginning
  991.     with # as comments. It is possible to define one terminal as being
  992.     similar to another one with a few differences without making two
  993.     copies of the description.) New termcap fields:
  994.         ti    terminal initialization string. This should be sent
  995.             out at the beginning of any program that addresses
  996.             the cursor.
  997.         te    Like te but at end of the program.
  998.             (Thanks to adb for these two fields)
  999.         us    Start underlining.
  1000.         ue    End underlining.
  1001.         uc    Underline one character & move over it.
  1002.         hc    (bool) terminal is hardcopy
  1003.         ns    (bool) terminal doesn't scroll (tektronix)
  1004.         ff    (bool) hardcopy knows ^L means formfeed.
  1005.         pt    (bool) hardware tabs, maybe set by is
  1006.         xt    (bool) destructive tabs (teleray 1061)
  1007.         ku    sequence sent by keypad "up" arrow
  1008.         kd    "down" arrow
  1009.         kl    "left" arrow
  1010.         kr    "right" arrow
  1011.         kh    "home" arrow
  1012.         ks    sequence to make keypad send these codes
  1013.         ke    sequence to make keypad not send these codes.
  1014.         k0-k9    sequences sent by up to 10 "other" keys
  1015.         l0-l9    labels on k0-k9. If omitted, default = "f0" - "f9".
  1016.         ko    additional keys on keypad, in terms of their
  1017.             termcap entry. For example, if "home down" and "clear"
  1018.             are present and send the same codes as ll and cl, use
  1019.                 :ko=cl,ll:
  1020.         tc    This entry is a list of differences from the named
  1021.             entry. THIS MUST BE THE LAST FIELD. Example: hp2621
  1022.             with no ks or ke (e.g. null string):
  1023.                 hn|hp2621nl:ks@:ke@:tc=hp2621:
  1024.             The @ cancels the string even if it is defined later.
  1025.  
  1026. Version 2.8 -- July 18, 1979
  1027.  
  1028.     It is now possible to backspace over the first character (:, /, or ?)
  1029.     on the echo line from visual. The effect is as though delete were hit
  1030.     except the bell isn't rung.
  1031.  
  1032.     The trailing slash in global commands is now optional.
  1033.     g/pat    means    g/pat/p
  1034.     (This change, as well as the corresponding changes to the substitute
  1035.     command and r.e. address are also in the latest version of ed.)
  1036.  
  1037.     The j, k, and l keys now move the cursor down, up, and right,
  1038.     respectively, in visual mode, as they used to do (and still do on
  1039.     3a's). This is to avoid the creeping of these keys into the map
  1040.     descriptions of terminals and to compensate for the lack of arrow
  1041.     keys on terminals like HP's.
  1042.  
  1043.     Two arguments given to a newline command now print the range of
  1044.     lines instead of just the last line (as though 'p' were appended).
  1045.     To make forms like /foo/;/bar/    still work, the ; operator sets
  1046.     the dot as before but then forgets everything to the left of the ;.
  1047.  
  1048.     The + option invoked from the shell or the edit command has
  1049.     two new forms:    +/pat    and     +?pat
  1050.     These cause the initial line to be chosen by a search for the
  1051.     pattern pat. Note that if any special characters are in the
  1052.     argument (such as ^, $, and even ?) it must be quoted.
  1053.  
  1054.     Two new options are added: autowrite (aw) and hardtabs (ht).
  1055.     Autowrite is a toggle, off by default. When on, if you have
  1056.     unsaved changes before a context switching command, a write
  1057.     is done automatically. The commands that may write are !,
  1058.     next, and tag. Note that there is an equivalent way to do the
  1059.     command with autowrite set without the write in each case:
  1060.     shell, tag!, and edit do not write.
  1061.  
  1062.     Hardtabs is a numeric option,, set to 8 by default.
  1063.     Changing this to, say, 4, tells ex that either your system
  1064.     expands tabs to every 4 spaces, or your terminal has hardware
  1065.     tabs set every 4 spaces.
  1066.  
  1067.     A bug that caused strange behaviour when an echo line contained
  1068.     more than 79 characters (from a long : command or one or more long
  1069.     filenames) has been patched by not printing any such characters
  1070.     past column 79.
  1071.  
  1072.     Handling of systems with nonstandard locations of files (where
  1073.     the maintainer of ex is not a superuser and cannot create files
  1074.     with names like /usr/lib/ex2.0strings or /etc/termcap) has been
  1075.     improved. If the file can't be found as is, it is tried in the
  1076.     current directory. If that fails, ex tries to run without it.
  1077.     (Previously it bombed immediately if the error message file wasn't
  1078.     in /usr/lib.)
  1079.  
  1080.     Shell commands containing ! or % characters are no longer echoed
  1081.     when in hush mode (as in 'ex -' from a shell file.)
  1082.  
  1083. Version 2.7 -- June 10, 1979
  1084.  
  1085.     An inefficiency introduced in version 2.3, which increased the
  1086.     amount of time spent preparing output by approximately 30 percent
  1087.     has been corrected.
  1088.  
  1089.     A bug which caused ``wrapmargin'' to work as though all hardcopy
  1090.     terminals were 160 columns wide has been corrected.
  1091.  
  1092.     A bug which caused the display to become confused after the display
  1093.     of a long line at the bottom of the screen was suppressed (being
  1094.     replaced temporarily by an @) has been fixed.  Previously, under
  1095.     some circumstances (e.g. after a put created the situation), scrolling
  1096.     up of the following text would cause the display of this long
  1097.     line to be skipped, so that the @ line would remain and the line
  1098.     itself would not be displayed.
  1099.  
  1100. Version 2.6 -- June 2, 1979
  1101.  
  1102.     A bug which prevented the first field separator in a tags file
  1103.     from beginning with a blank has been fixed; if the separator
  1104.     was a blank previously, the tag would not be found in the tags file.
  1105.  
  1106.     A bug which caused the display to be messed up after a ``:''
  1107.     escape which created long lines has been fixed.  Previously
  1108.     a substitute command which changed the last few lines on the screen
  1109.     to be very long would leave the screen messed up.
  1110.  
  1111.     A bug in display after 2 successive ``undo'' commands has been fixed.
  1112.     Previously if you opened new lines on the display, and then did
  1113.     2 successive undo commands, the display would be messed up after the
  1114.     second undo if your terminal had insert/delete line.
  1115.  
  1116.     A bug on intelligent terminals which caused unnecessary delete
  1117.     character commands to be sent has been fixed.  This occurred when
  1118.     you did not have ``autoindent'' set, and opened a new line
  1119.     below an existing line with tabs.
  1120.  
  1121.     The change operations in open mode on hardcopy terminals has been
  1122.     fixed.  Previously there were several bugs in cursor placement
  1123.     when the change extended to just before a tab character.
  1124.  
  1125.     Several bugs in the handling of tabs in insert mode on intelligent
  1126.     terminals have been fixed.  Previously, tabs would often expand
  1127.     incorrectly, leaving the wrong amount of white space, when an
  1128.     insert occurred just before a tab.
  1129.  
  1130.     A bug has been fixed which caused the editor to skip processing
  1131.     of the ``.exrc'' file when the terminal type set in the
  1132.     environment was unknown.  The editor now processes ``.exrc'' in
  1133.     this case.
  1134.  
  1135.     [[A number of formatting changes have been made to the editor code
  1136.     to eliminate unreasonably long lines.  In addition, the code
  1137.     from the Murray Hill and USG sites has been merged in conditionally,
  1138.     so that all sites can compile from the same source.]]
  1139.  
  1140. Version 2.5 -- May 28, 1979
  1141.  
  1142.     A bug which caused the VE sequence not to be sent when exiting
  1143.     the editor via :q or :wq from visual has been fixed.
  1144.  
  1145.     A bug which caused the command r^Q<ESC> to be weird when it
  1146.     was repeated has been fixed.
  1147.  
  1148.     The $ command now sets the column for future cursor motions to
  1149.     effective infinity.  Thus a `$' followed by up/down cursor motions
  1150.     moves at the right margin of each line.
  1151.  
  1152.     [[Internal: a bug in conditional compilation without the LISP
  1153.     features has been fixed.]]
  1154.  
  1155.     Several bugs relating to insert mode and intelligent terminals
  1156.     have been fixed:
  1157.  
  1158.     A bug which caused inserts on HP/DATAMEDIA like terminals to act
  1159.     strangely when the material was inserted immediately before a tab
  1160.     has been fixed.
  1161.  
  1162.     A bug which caused the insertion of full tabs to not appear to
  1163.     insert as many spaces as required (under strange circumstances)
  1164.     has been fixed.
  1165.  
  1166.     A bug which caused inserts on terminals with insert/delete line
  1167.     but no insert/delete character to act strangely if the insert
  1168.     caused a line to overflow has been fixed.
  1169.  
  1170.     The ``expreserve'' program has been improved; you now will get
  1171.     mail if a file is saved for you as a result of your phone being
  1172.     hung up accidentally.
  1173.  
  1174. Version 2.4 -- May 19, 1979
  1175.  
  1176.     A bug during inserts on intelligent terminals which occasionally
  1177.     caused double ``~~'' characters on the last few lines of the display
  1178.     rather than just single `~' characters has been fixed.
  1179.  
  1180.     The w W b B e and E operations in visual now wrap around line
  1181.     boundaries.  Thus a sequence of enough w commands will get to any
  1182.     word below the current position in the file, and b's will back
  1183.     up to any place before.  Thus these are more like the sentence
  1184.     operations ( and ).  You still can't back around line boundaries
  1185.     duing inserts however.
  1186.  
  1187. Version 2.3 -- May 13, 1979
  1188.  
  1189.     The P command to ex is now a synonym for p, so that 1,$P works,
  1190.     if you don't let up on the shift key soon enough.
  1191.  
  1192.     The / and ? operations within visual and open now hit later
  1193.     (or earlier resp) occurrences of the same string on the same
  1194.     line.  This makes scans using / and ? much more useful.  You
  1195.     can move to the right on the current line by typing /pref<ESC>
  1196.     where `pref' is a prefix of the word you wish to move to, and
  1197.     delete to a following string `str' by doing d/str<ESC> if it is
  1198.     on the same or succeeding line.  Previously the command
  1199.         d/pat/
  1200.     deleted lines through the next line containing `pat'; it now
  1201.     deletes text up to the next instance of `pat'.  To delete to
  1202.     the next line containing `pat', do
  1203.         d/pat/0
  1204.     which is short for
  1205.         d/pat/+0
  1206.     In general if you use an offset after the scanning pattern,
  1207.     whole lines will always be affected.
  1208.  
  1209.     Several bugs relating to the setting of the previous context mark
  1210.     `` have been fixed, including one which caused operations such as
  1211.     d`` or c`` to occasionally dump core.  In particular, the operations
  1212.         ( ) { } [[ ]] and %
  1213.     now set the previous context mark correctly, and the mark is set
  1214.     even if the motion by these operations lands in the same line.
  1215.  
  1216.     More optimization is now done on output cursor motions.  This
  1217.     is particularly much better on HP terminals which have
  1218.     ridiculously long cursor addressing sequences.  A new
  1219.     capability has been added to the termcap file to aid this:
  1220.     ``bt'' (backtab).  Thanks to Chuck Haley for the new code to
  1221.     implement this.
  1222.  
  1223.     A bug has been fixed on intelligent terminals which caused part
  1224.     of the screen to be accidentally erased during insertions.
  1225.     This occurred only on the first line on the screen, when it
  1226.     became longer than one displayed line and only if a part of
  1227.     the screen (at the top) was currently not in use.
  1228.  
  1229.     A bug has been fixed which caused the command ``dp'' to be interpreted
  1230.     as ``delete to register p''.  This normally went unnoticed since
  1231.     the ``autoprint'' option would cause the effect which the ``p'' was
  1232.     forcing.
  1233.  
  1234. Version 2.2 -- May 6, 1979
  1235.  
  1236.     "d)" now deletes a line if the current line is a sentence rather
  1237.     than leaving an empty line.
  1238.  
  1239.     The command
  1240.         :s/str
  1241.     now deletes str if it can find it; previously it was an error.
  1242.  
  1243.     The editor now handles multiple ":" escapes correctly; previously
  1244.     the screen would not be redrawn necessitating a ^L to fix it if you
  1245.     gave a `:!command' to ``[Hit return to continue]''.
  1246.     
  1247.     Recursive calls to visual from within open or visual are no longer
  1248.     permitted.  Previously ``:vi'' from within open mode would eventually
  1249.     leave the editor in a strange state.
  1250.  
  1251.     The %age in the status line is now correctly printed on 11's;
  1252.     Previously internal 16-bit overflows often caused it to be incorrect.
  1253.  
  1254.     The editor now ignores a ":" in front of commands.
  1255.     Thus you can say ``:read foo'' within ex.
  1256.  
  1257.     A bug which caused commands involving ]] to not be repeatable has
  1258.     been fixed.  Previously ``d]]'' followed by ``.'' caused an error.
  1259.  
  1260.     "ayw now works correctly.  Previously this silently did nothing.
  1261.  
  1262.     Several bugs in "recover" and "ex -r" have been fixed.  Thanks
  1263.     to Andy Koenig for the fixes.
  1264.  
  1265.     In input mode in open and visual ^V (like tenex) is now equivalent
  1266.     to ^Q (which is reminiscent of ITS) superquoting the next character.
  1267.     A later version of the UNIX tty driver will implement the standard for
  1268.     ^S ^Q handshaking and make ^Q unusable.
  1269.  
  1270.     There are several typos on page 3 of the ``edit'' manual section:
  1271.         s/move "a/delete a/
  1272.         s/"a move ./put a/
  1273.         /move to copy/s//delete to yank/
  1274.  
  1275. Version 2.1 -- April 5, 1979
  1276.  
  1277.     Invoking ex via
  1278.         ex -l
  1279.     now sets "lisp" and "showmatch".  This is suitable for invocations
  1280.     from within Franz Lisp.  If you don't like "showmatch", you can
  1281.     still use "ex -l", just put the command
  1282.         set noshowmatch
  1283.     in your .exrc file.
  1284.  
  1285.